home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d20 / db130b.arc / X00.DOC < prev    next >
Text File  |  1989-12-14  |  15KB  |  335 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                         X.00 Low Level Communications Driver
  11.  
  12.                         X.00 Copyright (c) 1987 by Raymond L. Gwinn
  13.                                 12469 Cavalier Drive
  14.                              Woodbridge, Virginia 22192
  15.                                  All rights reserved
  16.  
  17.           You  are   granted  a  conditional  license  to  use  X00.SYS  in
  18.           conjunction  with  the  D'Bridge EMAIL system by Chris Irwin  and
  19.           other programs distributed with conditions of use similar to that
  20.           of D'Bridge.  The  user  of X00.SYS must meet the  conditions  of
  21.           both  the  legitimate use of D'Bridge and the intended legitimate
  22.           use of D'Bridge.  X00 may not be distributed by anyone where fees
  23.           are  charged  or  where  requests for donations are made  without
  24.           prior  written  permission  of  Raymond  L. Gwinn.  Further,  the
  25.           author reserves  the  right to revoke the license and/or prohibit
  26.           the use of X00.SYS  by anyone  for any  reason at any time.
  27.  
  28.           The latest  version of X00.SYS is available for down-loading from
  29.           The Renex BBS (FidoNet 109/639), 703-690-7950.
  30.  
  31.           Unlike most software developers,  I  make  Beta/test  versions of
  32.           X00.SYS readily  available.  This has caused some confusion among
  33.           various users.  That is, they are using beta versions  of X00.SYS
  34.           and  think  they  are  using  a  fully tested (if there is such a
  35.           thing) versions.  Starting with  version  1.02  of  X00.SYS  I am
  36.           going to  use the following method in numbering the versions.  If
  37.           the version number ends  with an  odd number,  then it  is a beta
  38.           version.   If it  ends with  an even  number, then it is a tested
  39.           version  that  is  (relatively)  safe  for  general  use.   Then,
  40.           versions 1.01,  2.15 and  1.07 would  be beta versions.  Versions
  41.           1.00, 1.02, 2.00 and 2.14 would not be  beta versions.   The beta
  42.           versions  will  always  have  (and  always have had) a lower case
  43.           letter appended to the version number.  For example, 1.01f is one
  44.           way that  you will  see beta  versions identified.  If you find a
  45.           problem in a beta/test version, let  me know  about it  by direct
  46.           mail.
  47.  
  48.           X00.SYS  and  associated  utilities  comes  with no guarantees or
  49.           warranties.  Use it at your own risk.
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.           X00.SYS provides enhanced/extended support of INT  14H functions.
  58.           Documentation of  the enhanced/extended functions can be found in
  59.           the included file FOSSIL.DOC by Vincent E. Perriello.
  60.  
  61.           DoubleDOS.   Since writing  X.00 I  have learned  more about DDos
  62.           than I  ever wanted  to know.   A few rules for DDos users that I
  63.           know are: 1 - Do not  assign the  comm ports  in DDCONFIG.SYS, 2-
  64.           Be sure  to execute  CAPTURE after  you execute  DOUBLEDO.  To be
  65.           safe, execute CAPTURE in  both  partitions.    3  -  If  you have
  66.           problems with  your clock,  try the Defer option.  4 - Be sure to
  67.           replace ANSI.SYS with  DBLDANSI.SYS.    For  some  reason,  I had
  68.           problems  if  the  TOP  partition  was not delayed.  That is, the
  69.           BOTTOM partition must initialize before the TOP partition does.
  70.  
  71.           The semi-formal syntax for the  statement  to  be  placed  in the
  72.           CONFIG.SYS file is as follows:
  73.  
  74.           DEVICE=X00.SYS <options>
  75.  
  76.           <options> ::=  <none> |  <eliminate> <defer>  <port specs> <baud>
  77.           <size> <fifospec>
  78.  
  79.           <none> ::=
  80.  
  81.           <eliminate> ::= E{LIMINATE}
  82.  
  83.           <defer> ::= D{EFER}
  84.  
  85.           <fifospec> ::= NOFIFO
  86.  
  87.           <baud>  ::= B,<port number>,<baud rate>
  88.  
  89.           <size>  ::= R=<receive buffer size> T=<transmit buffer size>
  90.  
  91.           <receive buffer size> ::= <buffer size>
  92.  
  93.           <transmit buffer size> ::= <buffer size>
  94.  
  95.           <nasty> ::=N{ASTY}
  96.  
  97.           <buffer size> ::= 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 |
  98.           32768
  99.  
  100.           <baud rate> ::= 300 | 1200 | 2400 | 4800 | 9600 | 19200 | 38400
  101.  
  102.           <port spec> ::= <number of ports> | <hardware port assignment>
  103.  
  104.           <number of ports> ::= 0 | 1 | 2 | 3 | 4
  105.  
  106.           <hardware port assignment> ::= <port number> = <assignment>
  107.  
  108.           <port number> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
  109.  
  110.           <assignment> ::= <logical> | <absolute>
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.           <logical> ::= <comn> {, <irqn>}
  118.  
  119.           <comn> ::= <COM1> | <COM2> | <COM3> | <COM4>
  120.  
  121.           <irqn> ::= <IRQ0> | <IRQ1> ........ <IRQ15>
  122.  
  123.           <absolute> ::= <hex port address> , <irqn>
  124.  
  125.           <hex port address> ::= Any hex number 0 through 0FFFF.  The first
  126.                                  character must be 0 through 9.
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.           The simplest statement for the CONFIG.SYS file is as follows:
  136.  
  137.                DEVICE=X00.SYS
  138.  
  139.           This statement will be all that is required on the vast majority
  140.           of  D'Bridge systems.  It says that you wish to support one comm
  141.           port.
  142.  
  143.           DEFER -  DO NOT USE THIS OPTION UNLESS YOU UNDERSTAND ITS PURPOSE
  144.           AND YOU NEED TO USE  IT.    IF  YOUR  SYSTEM  WORKS  WITHOUT THIS
  145.           OPTION, THEN  DO NOT  USE IT.   If  you needed to use this option
  146.           with past versions of X00.SYS then  try this  version without it.
  147.           Do not  automatically assume  that you  still need  it.  At least
  148.           half of  the reported  problems with  X00 have  resulted from the
  149.           casual use of this option.  This option specifies that X00.SYS is
  150.           not to take any  DOS interrupt  vectors during  the boot process.
  151.           If  DEFER  is  specified  then  CAPTURE must be executed prior to
  152.           executing OPUS.  Your AUTOEXEC.BAT  file  is  the  best  place to
  153.           execute  CAPTURE.    With  MultiLink,  CAPTURE should be executed
  154.           before multi-tasking  is started.   However,  as with  99% of all
  155.           systems,  MultiLink  systems  should  work correctly (and better)
  156.           without the DEFER option.   Unless  you  are  using  some strange
  157.           software, you  should not  need to use the DEFER option.  If your
  158.           system does not boot  correctly with  X00.SYS then  try the DEFER
  159.           option followed  by CAPTURE  in your  AUTOEXEC.BAT file.  X00.SYS
  160.           only checks for the D in DEFER.
  161.  
  162.           ELIMINATE will eliminate the 5  second  commercial  at  boot time
  163.           (which is a direct screen memory write).
  164.  
  165.           NOFIFO will  cause X00  to NOT  enable the  FIFOs of the National
  166.           16550.  Some Multi-Tasking systems have problems when the 16550's
  167.           FIFOs  are  enabled.    NOFIFO  allows  the  user to override the
  168.           automatic use of the 16550's FIFOs by X00.
  169.  
  170.           Number of ports.  When  you  wish  to  use  the  default IBM/Opus
  171.           communication port  addresses and IRQs, you should simply specify
  172.           the number of ports that you wish to support (the  default is 1).
  173.           Although X00 V1.00 and up can support up to 8 ports, you can only
  174.           specify 0 through 4 supported ports.  The reason is that there is
  175.           only  4  defined  ports  (COM1,  COM2,  COM3,  COM4) that X00 can
  176.           default to.  If you use the absolute method (described later) you
  177.           can specify  up to 8 devices.  X00 assumes that COM1 and COM2 are
  178.           addressed as originally defined by  IBM.    The  default hardware
  179.           characteristics of  COM3 and COM4 are 03E8H, IRQ4 and 02E8H, IRQ3
  180.           respectively.  This seems to be  a defacto  standard, although no
  181.           real standard exists that I know of.
  182.  
  183.           With the  software that uses FOSSIL drivers today, 2 ports is all
  184.           that can reasonably be used.  However, X00 allows you to make one
  185.           or both of those ports COM3 and/or COM4 or non-standard hardware.
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.           The T  and R options (or help, the sky is falling).  Trying to be
  194.           all comm drivers to  all protocols  on all  computers (especially
  195.           betas) is not easy.  The T and R options allow you to specify the
  196.           size of the transmit and receive buffers.   The buffer  size must
  197.           be a power of 2.  The sum total, in bytes, of all buffers can not
  198.           exceed 48k bytes.  For example, DEVICE=X00.SYS T=32768 R=16384 is
  199.           valid (only one port).  However, DEVICE=X00.SYS 2 T=16384 R=16384
  200.           is not valid (2 ports each with a 16k transmit and receive buffer
  201.           = 32k  per port  or 64k).  In the second example the total buffer
  202.           size  exceeds  the  maximum  of  48k.     X00   SHOULD  (but  not
  203.           necessarily) beep  the bell  and display an error message at boot
  204.           time if you attempt to define too much  buffer space.   Also with
  205.           this option, the default buffer size has been increased to 4k (it
  206.           was 1k) for both the transmit and receive buffers.
  207.  
  208.           The <baud> option allows you  to  lock  the  baud  rate  from the
  209.           computer to the modem.  When this option is specified for a port,
  210.           the baud rate from the computer to the modem will remain constant
  211.           regardless  of  what  the  application  program  (such  as  Opus)
  212.           requests the baud rate to be.  This option is  to accommodate the
  213.           higher  speed  modems  like  the  Telebit TrailBlazer and USR HST
  214.           modems.  When this option is used, RTS/CTS handshaking is implied
  215.           (forced)  even  if  the  application  program  has  not requested
  216.           RTC/CTS handshaking.  Both Telebit  and  USR  recommend  in their
  217.           manuals that  the computer  to modem  baud rate  be constant.  My
  218.           personal experience has show that both modem types operate better
  219.           when the  computer to  modem baud  rate is faster than the actual
  220.           phone line baud rate.
  221.  
  222.           The <nasty> option makes  X00 get  very aggressive  about keeping
  223.           the COMM  interrupts.   Many multi-tasking  systems and some TSRs
  224.           mess around with the  COMM IRQs  and thus,  slow things  down.  I
  225.           finally figured  out how to keep them at bay.  However, the NASTY
  226.           option may cause problems on some systems.  If you  are running a
  227.           multi-line system,  try the  NASTY option.  If it does not crash,
  228.           you will probably see improved  throughput.    Running  COMM type
  229.           code in LIM memory may crash with NASTY enabled.  The default for
  230.           NASTY is disabled.
  231.  
  232.           You may specify 0 as the number of  FOSSIL comm  ports.   In this
  233.           case,  all  FOSSIL  code  is  released  to DOS during booting and
  234.           X00.SYS will occupy only  about 1K  of memory.   The  0 comm port
  235.           option is  primarily for  non IBM systems (such as DEC and Tandy)
  236.           that must use other  FOSSIL drivers.  These systems  can then use
  237.           OUTER without  carrying the overhead of the unusable FOSSIL code.
  238.           If you  are using  Opus and  you specify  0 FOSSIL  comm ports to
  239.           X00.SYS, you  must have  another FOSSIL  driver, such as OPUSCOMM
  240.           loaded into memory for Opus to use.
  241.  
  242.           The required communications  buffers  are  allocated dynamically.
  243.           All code  used for  initialization is  overlaid by the buffers or
  244.           released to DOS by X00 when  it completes  initialization at boot
  245.           time.
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.           IRQs.  The AT's additional 8 IRQs are supported.  X00 can support
  253.           multiple ports on a  single interrupt.   When  multiple ports are
  254.           assigned to  a single  interrupt, X00 will poll each of the ports
  255.           to find the interrupting device(s).
  256.  
  257.           If  you  plan  to   reassign  the   port(s)  to   a  non-standard
  258.           configuration or  use some  strange hardware, it is best to think
  259.           in port numbers instead of COMn.   The  Opus documentation refers
  260.           to COM1  and COM2.  However, when Opus communicates with a FOSSIL
  261.           driver, it calls COM1  device/port 0  and COM2  is device/port 1.
  262.           So if  you want  to keep your head in order, you can edit the CTL
  263.           files and (except where you can't) change all occurrences of COM1
  264.           to PORT 0 and COM2 to PORT 1.
  265.  
  266.           Some examples of CONFIG.SYS statements are as follows:
  267.  
  268.           DEVICE = X00.SYS E
  269.           Which means one port, no commercial.
  270.  
  271.           DEVICE = X00.SYS 2
  272.           Allocate  space  for  buffers  (at  the  default  size of 4k) and
  273.           provide support for COM1 and COM2.
  274.  
  275.           DEVICE = X00.SYS T=1024 R=4096
  276.           One port supported, the transmit  buffer  is  to  be  1k  and the
  277.           receive buffer is to be 4k.
  278.  
  279.           DEVICE = X00.SYS 2 B,1,19200
  280.           Same as  the above except COM2 will always operate at 19200 baud.
  281.           COM1 will  operate  at  the  baud  rate  set  by  the application
  282.           program.
  283.  
  284.           DEVICE = X00.SYS 2 B,0,19200
  285.           Same  as  the  above  except  COM1  is fixed at 19200.  COM2 will
  286.           operate at the baud rate set by the application program.
  287.  
  288.           DEVICE = X00.SYS 2 B,0,19200 B,1,9600 NOFIFO
  289.           In this example the baud rate  for COM1  is locked  at 19200 baud
  290.           and COM2  is locked at 9600 baud.  Additionally, the FIFOs of the
  291.           National 16550 will not be enabled.
  292.  
  293.           DEVICE = X00.SYS 0=COM3
  294.           One port supported but,  use COM3  on IRQ4  (the default).   Opus
  295.           will think  (and must  be told  in the CTL file) that it is using
  296.           COM1 in this case.
  297.  
  298.           DEVICE = X00.SYS 0=COM3,IRQ4
  299.           Exactly the same as above.
  300.  
  301.           DEVICE = X00.SYS 0=COM3,4
  302.           Exactly the same as above.
  303.  
  304.           DEVICE = X00.SYS 0=COM3,IRQ1
  305.  
  306.  
  307.  
  308.  
  309.  
  310.           Same as above except IRQ1 is to be used.
  311.  
  312.           DEVICE = X00.SYS 0=COM4 1=COM3
  313.           Two ports supported, Opus thinks COM4  is COM1  and that  COM3 is
  314.           COM2.  Use the default IRQs for COM4 and COM3.
  315.  
  316.           DEVICE = X00.SYS 0=COM4 1=COM3 NASTY
  317.           Exactly the  same as the previous example except the NASTY option
  318.           is enabled.  Note that NASTY may cause problems on some systems.
  319.  
  320.           Now some absolute assignment examples.   When hex  port addresses
  321.           are used, the IRQ must be specified.
  322.  
  323.           DEVICE = X00.SYS 0=0FE8,IRQ4
  324.           Support  one  serial  (8250)  device  with a base port address of
  325.           0FE8H and use IRQ4
  326.  
  327.           DEVICE = X00.SYS 0=3F8,IRQ4 1=2F8,IRQ4
  328.           Support 2 serial devices at the given hex  port address  and both
  329.           will interrupt on IRQ4.
  330.  
  331.           etc, etc, etc.
  332.  
  333.           If you are not confused by now, I am, so I'm giving up.
  334.  
  335.